home *** CD-ROM | disk | FTP | other *** search
/ Commodore Free 30 / Commodore_Free_Issue_30_2009_Commodore_Computer_Club.d64 / 128 cpm 1 next >
Text File  |  2023-02-26  |  12KB  |  395 lines

  1. u
  2.  
  3. An Introduction to C-128 CP/M
  4.  
  5. CPM1.TXT rev 1a 96-11-01
  6.  
  7. THIS DOCUMENT IS COPYRIGHT (C) 1988,
  8. 1996 BY HERNE DATA SYSTEMS LTD.  THE
  9. MATERIAL CONTAINED HEREIN MAY BE
  10. FREELY USED FOR PERSONAL INFORMATION
  11. ONLY.  IF YOU REPRODUCE IT, THIS
  12. COPYRIGHT NOTICE MUST NOT BE REMOVED.
  13. THIS MATERIAL MAY NOT BE EXPLOITED
  14. FOR COMMERCIAL PURPOSES.
  15.  
  16. Herne Data Systems Ltd.,
  17. PO Box 250, Tiverton, ON N0G 2T0
  18. CANADA.
  19. Voice/fax 519-366-2732,
  20. e-mail herne@herne.com
  21. internet: http://www.herne.com
  22.  
  23.  
  24. An Introduction to C-128 CP/M
  25.  
  26. What is CP/M?
  27. CP/M stands for 'Control
  28. Program/Monitor'.  It is not a
  29. programming language, the way BASIC or
  30. Fortran is, but a micro computer
  31. operating system, much like the KERNAL
  32. used in C-128 native mode and other
  33. 6502 based Commodore computers. CP/M
  34. was developed in the 1970's by Digital
  35. Research Inc.  (DRI) for Intel 8080
  36. microprocessor based computers that
  37. allows a given program to run on a
  38. wide variety hardware configurations
  39. with little or no changes.  It was
  40. later extended to run on Zilog Z80
  41. based computers as well as others.
  42. (The Z80 used in the C-128 is
  43. 'upwardly compatible' with the 8080.
  44. That is, its machine language
  45. instruction set includes everything
  46. that the 8080 has and more.)  With
  47. CP/M, a software developer has a
  48. uniform set of basic operating system
  49. functions to work with (such as screen
  50. output, keyboard input & disk access
  51. routines).  To the end user, these
  52. system functions remained fixed, no
  53. matter what computer the program is
  54. actually running on, thus providing a
  55. very high degree of portability. (You
  56. need only develop one version of a
  57. program which operates under the CP/M
  58. system instead of having a different
  59. version for brand x, y, and z
  60. computers.) For those who may be
  61. interested, there is also a 16-bit
  62. version of CP/M designed to run on
  63. 8086/88 type computers called CP/M-86,
  64. a multi user version called MP/M and a
  65. 16/32 bit version for the MC68000 chip
  66. series called CP/M-68k.
  67.  
  68. CP/M is divided up into four main
  69. components:  the BIOS (Basic Input
  70. Output System); the BDOS (Basic Disk
  71. Operating System), the CCP (Console
  72. Command Processor) and the TPA
  73. (Transient Program Area).  Each of
  74. these parts will be discussed in later
  75. chapters. Of the four parts, only the
  76. BIOS is hardware dependent.  It acts
  77. as the messenger between the other
  78. parts of the system and the actual
  79. hardware. That is, a separate custom
  80. BIOS must be created for each system
  81. that runs CP/M.
  82.  
  83. CP/M on the C-128
  84. The version of CP/M used on the C-128
  85. is termed 'CP/M Plus' or 'CP/M version
  86. 3'.  This is the latest 8-bit CP/M
  87. version, and is also used on other
  88. recent CP/M based computers such as
  89. the Epson CF:X-10, and TRS-80 Model 4.
  90.  
  91. The minimum configuration for running
  92. CP/M on the C-128 is the C- 128, one
  93. disk drive, and a 40 or 80 column 
  94. monitor.  For speed and ease of use, a
  95. fast disk drive (i.e. the 1571 or
  96. 1581) is recommended along with the 80
  97. column monitor.  For disk intensive
  98. programs (many CP/M programs are), a
  99. 1700 or 1750 RAM expansion unit is 
  100. highly recommended as it can be used
  101. as a super fast RAM disk.  A printer
  102. (device 4 or 5) along with a modem
  103. will round out your system.  (Use of
  104. the modem requires CP/M release dated
  105. DEC 85 or later.)
  106.  
  107. To start up CP/M on the C-128 or 128
  108. D, put the CP/M BOOT disk in disk
  109. drive device 8 and turn on the drive
  110. and then the computer (in that order).
  111. If the computer and drive are already
  112. on, insert the boot disk, then press
  113. the reset button on the C-128 or type
  114. in BOOT followed by pressing <return>,
  115.  
  116. After a few moments and some sign-on
  117. status message screens, you will see a
  118. prompt on the screen in the form of
  119. the letter A followed by a 'greater
  120. than' sign & a flashing cursor  A>
  121.  
  122. Congratulations!  You have just
  123. started up CP/M successfully and are
  124. ready to enter your first CP/M
  125. command.  Just for fun, type in the
  126. letters DIR then press <return>.
  127. A 'directory' or 'catalog' of the
  128. contents of the boot disk should be
  129. displayed on the screen.
  130.  
  131. The Status Line The bottom line of the
  132. screen display (i.e. the 25th line) on
  133. either the 40 column or 80 column
  134. screen is used by CP/M as a status
  135. line to display various system
  136. messages. These are outlined below.
  137.  
  138. Disk Status
  139. C-128 CP/M has an optional disk status
  140. window displayed at the bottom right
  141. corner of the screen.  The format of
  142. the status window is as follows:
  143.  
  144. O Dtt ss
  145.  
  146. where:
  147.  
  148.  O  = Operation, either R or W
  149.        indicating a Read or Write
  150.  D  = the logical drive (A,B,C,D, etc)
  151.  tt = the track number currently being
  152.        read or written
  153.  ss = the sector number currently
  154.        being read or written
  155.  
  156. Normally,  the track and sector
  157. numbers are separated by a space. If
  158. the disk is formatted in MFM, and the
  159. track and sector are separated by a
  160. '-', then the second side of the disk
  161. is currently being accessed. You can
  162. toggle this status window ON/OFF by
  163. the <CONTOL>-<RUN/STOP> key
  164. combination.
  165.  
  166. Note that window is also erased
  167. temporarily, i.e. until the next disk
  168. access, when you (or your application
  169. program) perform a screen clear.
  170.  
  171. The disk status window is not used for
  172. RAM disk operations (i.e. 1700/1750
  173. RAM expansion unit).  You may also 
  174. note that, due to a bug in the fast
  175. bus GCR sector translation routine,
  176. the sector numbers displayed during
  177. reading & writing of both single and
  178. double sided C-128 native GCR type
  179. CP/M disks are incorrect when using a
  180. 1571 drive.  Correct numbers are,
  181. however, displayed when using a 1541
  182. drive to access these disks.
  183.  
  184. MFM Disk Type Selection
  185. C-128 CP/M supports a number of
  186. industry standard MFM disk types (such
  187. as KayPro, Osborne, IBM, Epson, etc.) 
  188. when used with a 1571 disk drive.
  189. However, CP/M sometimes cannot
  190. automatically distinguish between two
  191. very similar disk types such as KayPro
  192. II & KayPro IV.  For example, although
  193. the KayPro II is a single sided disk
  194. & the KayPro IV is a double sided one,
  195. CP/M can confuse the two because both
  196. have ten sectors of 512 bytes per
  197. track, numbered 0 to 9 on side 0.
  198. CP/M looks at the physical format of
  199. side 0 to determine the foreign disk
  200. type.  When two or more matches are
  201. found in its internal parameter table,
  202. you are asked to manually chose which
  203. one you want.
  204.  
  205. When CP/M cannot uniquely identify the
  206. foreign disk format being accessed,
  207. the program will pause momentarily and
  208. the disk type window will open up at
  209. the center of the bottom line of the
  210. screen to display the name of the
  211. first match, such as KayPro II, in
  212. reverse video.  At this point there
  213. are several things that you can do.
  214.  
  215. First, if you are sure that the disk
  216. is of the type displayed,
  217. simply press <return> or <enter>.
  218. This will select the currently
  219. displayed entry.  If you change disks,
  220. you will have to go through the
  221. selection process over again.
  222.  
  223. Second, if you are going to be using
  224. this disk format repeatedly and do not
  225. wish to re-select each time you change
  226. disks, you can 'lock in' the selected
  227. type by pressing <control>-<return>.
  228. This action has the effect of
  229. performing a burst mode 'forced login'
  230. on the drive each time you change
  231. disks.  If you insert a new type of
  232. disk while locked in, you will go back
  233. to the selection window.
  234.  
  235. Note: The forced login commands are
  236. different for the 1571 & 1581 drives
  237. therefore, <control>-<return> should
  238. not be used with a 1581 drive. If you
  239. do use it on a 1581 and change disks,
  240. the results may be unpredictable, even
  241. resulting in system crash
  242.  
  243. The third option is used to display
  244. and select the alternate disk choices.
  245. Use the cursor left & right keys in
  246. the cursor control keypad (above the
  247. main keyboard) to scroll through the
  248. list of choices.  In the example used
  249. above, the display should change
  250. between KayPro II & KayPro IV.  When
  251. the correct entry is highlighted, you
  252. can use either of the two methods
  253. outlined above for making selections.
  254.  
  255. Note that because you are in a
  256. suspended program loop, nothing else
  257. can be done until you make a selection
  258.  
  259. PAUSE
  260. The  key  labelled NO SCROLL executes
  261. a PAUSE function.  Although this key
  262. appears to have the same effect as
  263. <control>-s (stop) & <control>-CF:
  264. (start) for pausing to read screen
  265. dumps, it is not actually related in
  266. terms of the internal workings of the
  267. operating system.  Using NO SCROLL
  268. sends the program into an endless loop
  269. while displaying the message 'PAUSE'
  270. on the status line.  Because of this,
  271. NO SCROLL cannot be used to pause a
  272. display before pressing <control>-p to
  273. toggle the printer, or <control>-c to
  274. abort execution of a program.
  275.  
  276. To resume execution after a PAUSE
  277. function, press NO SCROLL again (for
  278. AUG or DEC release only) or RETURN
  279. (for MAY release only).
  280.  
  281. Disk Drives
  282. C-128 CP/M supports a variety of
  283. different disk drives (virtually any
  284. serial bus drive is either supported
  285. directly or can be easily adapted).
  286. However, since CP/M tends to be a disk
  287. intensive operating system (i.e. it
  288. makes heavy use of temporary disk
  289. files, overlay files, working files,
  290. etc.), a fast bus drive (i.e. a 1571
  291. or 1581) is highly recommended for
  292. maximum disk access speed.
  293.  
  294. CP/M in general can support up to 16
  295. disk drives, usually labelled A: to P:
  296. On the C-128 implementation, normally
  297. only a maximum of 6 drives are
  298. actually supported.  In the default
  299. system configuration, these are:
  300.  
  301. DRIVE     DEVICE
  302. A:       serial port device 8 drive 0
  303. B:       serial port device 9 drive 0
  304. C:       serial port device 10 drive 0
  305. D:       serial port device 11 drive 0
  306. E:       serial port device 8, drive 0
  307.       (see 'Virtual Disk Drive' below)
  308. M:       17xx RAM expansion unit
  309.       (see 'RAM Disk' below)
  310.  
  311. Virtual Disk Drive
  312. The  physical disk drive A can be used
  313. as logical drive A or as the 'virtual'
  314. or 'phantom' logical  disk drive E.
  315. Whenever  you access drive E (for
  316. example by doing DIR E:, or PIP
  317. E:=A:FILE1), the system will display a
  318. prompt on the status line asking you
  319. to insert the diskette for drive E
  320. (respond by putting whatever diskette
  321. you want into physical drive A, then
  322. type <return>). The next time you
  323. access logical drive A, the system
  324. will prompt you to insert the A
  325. diskette in drive A.  Again, insert
  326. the desired diskette & type <return>.
  327. Note that CP/M does not actually
  328. check to see if you in fact changed
  329. the disk.  It will accept whatever is
  330. in the drive when you press <return>
  331. as being the correct disk.
  332.  
  333. RAM Disk
  334. When the 1700 (128k byte) or 1750
  335. (512k byte) RAM expansion unit (REU)
  336. is connected to the C-128 in CP/M
  337. mode, it becomes an ultra fast RAM
  338. disk, normally assigned to CP/M drive
  339. M:. That is, any CP/M command or
  340. transient utility can access the REU
  341. as drive M:, just like it can any
  342. other 'disk drive' connected to the
  343. system. Note that this is totally
  344. separate from the virtual disk drive
  345. discussed above.
  346.  
  347. Unlike a physical disk drive, the
  348. contents of the RAM disk are not
  349. preserved when the C-128 is turned
  350. off.  However, the contents are
  351. preserved when the reset button is
  352. pressed momentarily to re-boot the
  353. system, even if you enter C-128 native
  354. mode or C-64 mode before returning to
  355. CP/M mode (providing, of course, you
  356. do not alter the contents either
  357. accidentally or intentionally by
  358. running some other program while in
  359. one of these other operating modes).
  360.  
  361. Note that in order to use the RAM
  362. disk, you must have the C-128 CP/M
  363. release dated 6 DEC 85 or later.
  364.  
  365. The Screen
  366. C-128 CP/M supports both the 40 column
  367. and 80 column display screens.  The
  368. screen which is initially active is
  369. determined by the position of the
  370. 40/80 switch on boot up.  After
  371. booting, the screen can be selected
  372. using the DEVICE utility (see Chapter
  373. 3) or equivalent.  The screen can be
  374. changed during the execution of a user
  375. program by setting the CONOUT
  376. redirection flag in the system control
  377. block (see Chapter 9).
  378.  
  379. The 40 column screen is configured as
  380. a window on a larger 80 column
  381. 'virtual' screen.  This allows
  382. commands and programs to think that
  383. they are dealing with an 80 column
  384. wide screen (the default width for
  385. most CP/M programs).
  386.  
  387. Use <control>-<left arrow> and
  388. <control>-<right arrow> to scroll the
  389. window across the virtual screen (see
  390. Arrow Keys, below).
  391.  
  392.  
  393.         CONTINUED IN PART 2
  394.  
  395.